1. Field of the Invention
The present invention relates to the field of data and/or video conferencing (DVC) applications. More specifically, the present invention relates to the development and running of these applications.
2. Background Information
As advances in telecommunication and computing technology continue to bring forth more powerful and yet affordable computer conferencing systems, it has become increasingly viable to apply the technology of DVC to a wide range of business problems. For example, the technology can be applied to allow a person in the process of relocating to a new geographic area to preview homes for sale in the new area, under the guidance of a real estate marketing representative in the new area, while the person is still in the old area. As a further example, the technology can also be applied to allow a west coast investor to remotely review the performance data of a number of financial instruments with his/her financial adviser in New York.
Conventional approaches would develop these DVC applications using any number of well known high level programming languages such as COBOL and C, and/or assembly language, employing various software development techniques such as top down design and data flow analysis. However, it will be costly if each of these DVC applications has to provide their own conferencing services, such as connection management functions, conference management functions and audio and video (A/V) services.
Since a general purpose personal conference (GPPC) application is typically incorporated with these conferencing services, it would be a lot more cost effective if DVC applications can be developed and run in a manner allowing them to exploit the conferencing services of a GPPC application, leaving substantially only the special user interfaces tailored for the special customer sets, and the companion logic to be developed.
Additionally, it is further desirable to allow DVC applications to be independently developed under this more cost effective approach, and yet they can cooperate with each other at runtime, even when the independent development led to DVC applications having different levels of capabilities, such as different number of data and file channels supported for performing data and file transfers.
As will be disclosed in more detail below, the methods and apparatus of the present invention achieve these and other desirable results.
An object-oriented DVC application runtime synchronizer (RS) having a number of runtime management and channel objects is provided for assisting running of customized DVC applications incorporated with prepackaged conference control objects that facilitate accesses to conferencing services of GPPC applications. An identical copy of the DVC application RS is to be provided on each system, interposed between the DVC and the GPPC applications, to synchronize A/V rendering as well as data and file channels of the local DVC application to its remote counterpart, thereby relieving prepackaged conference control objects incorporated in the customized DVC applications from having to provide the applicable synchronization and yet without imposing the responsibilities on the customized DVC applications.
The prepackaged conference control objects are designed to complement the interposing DVC application RS, routing all GPPC application conference service accesses that have repercussion on the remote DVC application through the DVC application RS, which in turn, augments the accesses and/or imposes proper end-to-end synchronization on the accesses, before passing the accesses onto the interposed GPPC application.
The runtime management and channel objects of the DVC application RS of the present invention include a Runtime Manager Object, a Channel Manager Object, a pair of Control Input and Output Channel Objects, zero or more pairs of Data Input and Output Channel Objects, and zero or more pairs of File Input and Output Channel Objects. Both the Runtime and Channel Manager Objects are created at installation time, whereas the Control Input and Output Channel Objects are created at connect time, and the Data and File Input and Output Channel Objects are created on an as needed basis.
The Runtime Manager Object is used to receive all accesses having repercussion on the remote DVC application from the prepackaged conference control objects, augment them with additional accesses to send control messages to the connected remote DVC application, and/or reroute them to ensure data/file blocks being transferred are delivered to the proper data/file channels of the connected remote DVC application, as appropriate.
The Channel Manager Object is used to manage the routing of the additional accesses for sending control messages as well as the re-routing of data and file block transfers. The Channel Manager Object creates the Control Input and Output Channel Objects at connect time, maintains a mapping of the data and file channels to the Data and File Input and Output Channel Objects, and creates the appropriate Data and File Input and Output Channel Objects when their corresponding data and file channels are requested to be open.
The Control Input and Output Channel Objects are used to facilitate the routing of the additional accesses for sending control messages, whereas the Data and File Input and Output Channel Objects are used to facilitate the rerouting of the accesses for data and file block transfers.
Additionally, under the presently preferred embodiments, the two DVC applications may have different level of capabilities, including different number of data and/or file channels. At connect time, the Runtime Manager Object automatically exchanges these information with its counterpart and disables the capabilities of the local DVC application that are unsupported by the connected remote DVC application.
Both data as well as file blocks are sent and received as messages. In one embodiment, each message comprises a message type, message parameters, a sequence number (for multi-block data/file transfers), a buffer/data size and the buffer/data itself. Under this embodiment, the buffer/data of the capability exchange control message comprises the number of DVC application conference control objects incorporated, and the object type and object identification of each instance of a conference control object incorporated.